<body style="font-family: Arial, sans-serif;">
<a href=http://www.appenginelearn.com>
<img width=160 src="google-app-engine.png" align=right border=0>
</a>
<h1>
<font size="5">
Using Google App Engine<br/>
</font>
<font size="4" color="gray">
Building Web Applications 
</font>
</h1>
<p>
This book is based on materials developed for 
www.appenginelearn.com as well
as the courses <a href="http://www.si502.com/" target="_new">SI502</a> and 
<a href="http://www.si539.com/" target="_new">SI539</a>.
</p>
<p>
This book is going to be published by
<a href="http://oreilly.com/catalog/9780596800697/" target="_new">
O'Reilly and Associates</a> 
in mid-2009.  
</p>
<h2>Preface</h2>
<p>The preface is a pithy bit of writing that arrempts to motivate
the person skimming the book in the bookstore to actually 
take the book to the cashier and plunk down their money.
</p>
<ul>
<li><a href=AppEngine-00-Preface.pdf target=_new>Draft Preface Chapter</a></li>
</ul>
<h2>Chapter 1: Introducing Google App Engine</h2>
<p>
Define the cloud - explain how programming in the cloud is different than programming on your own servers:
<ul>
<li><a href=AppEngine-01-WebApp.pdf target=_new>Draft Introduction 
</a></li>
<li>
<a href="http://www.youtube.com/watch?v=3Ztr-HhWX1c" target=_new>Google CampFire - Understanding App Engine</a> (YouTube video from Google)
</ul>

<h2>Chapter 2: Introductory HTML and CSS</h2>
<p>
A very fast romp through HTML and CSS focused on understanding the HTML and CSS for our sample application.  This will create several static web pages with navigation and nice CSS.  It will also cover the validation of HTML and CSS.
</p>
<ul>
<li><a href=AppEngine-02-HTML-CSS.pdf target=_new>Draft HTML and CSS </a>
</ul>

<h2>Chapter 3:  Introductory Python</h2>
<p>
A very fast romp through Python - show the syntax, variables, loops, if statements, etc. - these are lectures with an intro feel.  The chapter will be 
more focused on just the Python language.
<ul>
<li><a href=AppEngine-03-Python.pdf target=_new>Introducing Python </a>
</ul>
<h2>Chapter 4: Sending Data to Your Application</h2>
<p>
<ul>
<li><a href=AppEngine-04-HTTP-CGI.pdf target=_new>
Sending Data to Your Application  
</a>
</ul>


<h2>Chapter 5: The App Engine WebApp Framework</h2>
<p>
This chapter will introduce Object Oriented Concepts in Python and build our first, simple Object Oriented web application and explain the concepts behind all of the details of the application.
<ul>
<li><a href=AppEngine-05-WebApp.pdf target=_new>
The App Engine WebApp Framework 
</a>
</ul>

<h2>Chapter 6: Using App Engine Templates</h2>
<p>
This chapter will cover the use of templates in App Engine.  It will continue the Number guessing example from the previous chapter and refactor it using templates.  Basic templates will be explained as well as advanced templates with inheritance.
<ul>
<li><a href=AppEngine-06-Templates.pdf target=_new>
Using App Engine Templates 
</a>
</ul>

<h2>Chapter 7: Sessions</h2>
<p>
This chapter will introduce the concepts of Sessions and how they are used.
<ul>
<li><a href=AppEngine-07-Session.pdf target=_new>
HTTP Cookies and Sessions 
</a>
</ul>
<h2>Chapter 8: Using the Data Store</h2>
<p>
This chapter will introduce the data store and show how to define models and store them in the data store.  This will also cover multiple models and the relationships between the models and how to represent and use those relationships in App Engine.
<ul>
<li>
<a href="AppEngine-08-DataStore.pdf" target=_new>App Engine Data Store</a> 
</ul>

<h2>Chapter 9: Javascript and Ajax</h2>
<p>
This chapter will be a very very light introduction to Javascript and Ajax using JQuery.   It will simply show how to add support to your application to updating a div asynchronously.
<ul>
<li>
<a href="AppEngine-09-Ajax.pdf" target=_new>Using JQuery and Ajax</a> 
</ul>
<h2>Chapter 10: Running your Application on Google Infrastructure</h2>
<p>
This chapter will explain how to get an account on the application engine
infrastructure, how to upload your application, and how to manage and monitor 
your application in production.
</p>
<ul>
<li>
<a href="AppEngine-10-Deployment.pdf" target=_new>
Running your Application on Google Infrastructure
</a>
</ul>

<h2>Chapter 11: Memory Cache</h2>
<p>
This chapter describes
the distributed memory cache 
and examines the implementation of the Session class using the memory cache.
<ul>
<li><a href=AppEngine-11-Memcache.pdf target=_new>
Memory Cache 
</a>
</ul>


<h2>Appendix: Installing JEdit, Python, and App Engine</h2>
<p>
These Appendices will cover software installation.
<ul>
<li class="toplevel">
<a href="http://www.pythonlearn.com/install.php" target="_new">
Installing Python and JEdit</a> - We recommend using JEdit as
your programmer editor and it will be used throughout the Podcasts.
<li class="toplevel">
Installing App Engine and writing your first 
Application.
</li>
<ul>
<li>Macintosh: 
(<a href="http://www-personal.umich.edu/~csev/courses/shared/handouts/AppEngine-Install-Mac.pdf" target=_new>Handout</a>,
<a href="downloads/ae-01-trivial.zip">Source Code</a>,
<a href="http://www-personal.umich.edu/~csev/courses/shared/podcasts/2008-mac-appengine-install.mov" target=_new>Screencast</a>,
<a href="http://www.youtube.com/watch?v=MmnrpMuDchU" target="_new">
YouTube</a>)
</li>

<li>Windows Vista: 
(<a href="http://www-personal.umich.edu/~csev/courses/shared/handouts/AppEngine-Install-Vista.pdf" target=_new>Handout</a>,
<a href="downloads/ae-01-trivial.zip">Source Code</a>,
<a href="http://www-personal.umich.edu/~csev/courses/shared/podcasts/2008-vista-appengine-install.mov" target=_new>High Quality Screencast</a>,
<a href="http://www.youtube.com/watch?v=93HjHU25Iow" target="_new">
YouTube</a>)
</li>

<li>Windows XP: 
(<a href="http://www-personal.umich.edu/~csev/courses/shared/handouts/AppEngine-Install-XP.pdf" target=_new>Handout</a>,
<a href="downloads/ae-01-trivial.zip">Source Code</a>,
<a href="http://www-personal.umich.edu/~csev/courses/shared/podcasts/2008-xp-appengine-install.mov" target=_new>Screencast</a>,
and
<a href="http://www.youtube.com/watch?v=FLj2wCFqx7g" target="_new">
YouTube</a>)
</li>
</ul>
</ul>
</p>


<b>
Copyright 2008, Charles Severance - All Rights Reserved<br/>
<a href=http://www.dr-chuck.com/>www.dr-chuck.com</a>
</b>


<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-423997-9");
pageTracker._trackPageview();
} catch(err) {}</script>

